package com.tongfusoft.document.manager.role.service;

import java.util.List;

import com.tongfusoft.da.pagehelper.PageInfo;
import com.tongfusoft.document.entity.RoleHasSecurities;
import com.tongfusoft.document.entity.RoleHasUsers;
import com.tongfusoft.document.entity.Roles;
import com.tongfusoft.document.entity.Users;


public interface IDocumentRoleService {

	/**
	 * 新增角色
	 * @param role
	 * @param user
	 */
	public void createRole(Roles role,Users user);
	
	/**
	 * 删除角色
	 * @param role
	 * @param user
	 */
	public void delRole(Roles role,Users user);
	
	/**
	 * 修改角色说明
	 * @param role
	 * @param user
	 */
	public void updateRole(Roles role,Users user);
	
	/**
	 * 根据条件获取角色
	 * @return
	 */
	public List<Roles> roleListById(Users user);
	
	/**
	 * 根据条件获取用户
	 * @return
	 */
	public List<Users> userListById(Roles roles);
	/**
	 * 获取所有角色
	 * @return
	 */
	public List<Roles> roleList(Roles role);
	
	/**
	 * 获取某角色
	 * @return
	 */
	public Roles getRole(Roles role,Users user);
	
	/**
	 * 角色表值表格
	 *
	 * */
	public PageInfo<Roles> rolePageTable(int pageIndex,int pageSize,Roles roles);
	/**
	 * 角色表值表格
	 *
	 * */
	public PageInfo<RoleHasSecurities> roleHasSecuritiesPageTable(
			int pageIndex,int pageSize,RoleHasSecurities roleHasSecurities);
	/**
	 * 
	 * @param id
	 */
	public void delRoleHasGroup(RoleHasSecurities roleHasSecurities, Users user);
	
	/**
	 * 获取角色对应组的权限
	 * @param roleId
	 * @return
	 */
	public RoleHasSecurities powerByRpId(String rpId);
	
	/**
	 * 添加角色对应的组的权限
	 * @param id
	 */
	public void addRoleHasGroup(RoleHasSecurities roleHasSecurities,Users user);
	
	/**
	 * 编辑权限
	 *
	 * */
	public void updateRoleHasGroup(RoleHasSecurities roleHasSecurities,Users user);
	/**
	 * 
	 * 查询用户与角色是否绑定权限
	 * */
	public List<RoleHasUsers> getRoleHasUser(RoleHasUsers roleHasUsers);

	/**
	 * 查询角色所关联的用户
	 */
	public PageInfo<RoleHasUsers> getUserHasRole(int pageIndex, int pageSize,RoleHasUsers roleHasUsers);
	/**
	 * 添加角色和用户关联
	 */
	public void saveUsersHasRole(String[] userList, String roleId, Users user);
}
